/**
 * useradmin demo
 */


layui.define(['table', 'form'], function(exports){
  var $ = layui.$
      , admin = layui.admin
      , setter = layui.setter
  ,view = layui.view
  ,table = layui.table
  ,form = layui.form;

  //用户管理
  table.render({
    elem: '#LAY-user-manage'
      , url: setter.baseConfig.apiHost + '/api/user/getpagingusers'
      , method: 'post'
      , contentType: "application/json"
      , headers: { //通过 request 头传递
          Authorization: 'Bearer ' + layui.data(setter.tableName)[setter.request.tokenName]
      }
      , parseData: function (res) { // res 即为原始返回的数据
          return {
              "code": res.errorCode, // 解析接口状态
              "msg": res.errorMessage, // 解析提示文本
              "count": res.data.totalCount, // 解析数据长度
              "data": res.data.entities // 解析数据列表
          };
      }
    ,cols: [[
      { type: 'numbers', fixed: 'left' }
        , { field: 'id', title: 'Id', hide: true }
        , { field: 'createdTime', title: '创建时间', minWidth: 180 }
        , { field: 'phoneNumber', title: '登录手机', minWidth: 180 }
        , { field: 'email', title: '邮箱', minWidth: 200 }
        , { field: 'nickName', title: '昵称', minWidth: 200 }
        , { field: 'isEnabled', title: '状态', minWidth: 100, templet: '#table-useradmin-templet-status' }
        , { field: 'role', title: '角色', minWidth: 180, templet: '#table-useradmin-templet-role' }
        , { title: '操作', width: 300, fixed: 'right', toolbar: '#table-useradmin-webuser' }
    ]]
    ,page: true
    , limit: 10
    , limits: [10, 15, 20, 25, 30]
    , text: '对不起，加载出现异常！'
  });
  
  //工具条
  table.on('tool(LAY-user-manage)', function(obj){
    var data = obj.data;
    if(obj.event === 'del'){
      layer.prompt({
        formType: 1
        ,title: '敏感操作，请验证口令'
      }, function(value, index){
        layer.close(index);
        
        layer.confirm('真的删除行么', function(index){
          obj.del();
          layer.close(index);
        });
      });
    } else if(obj.event === 'edit'){
      admin.popup({
        title: '编辑用户'
        ,area: ['500px', '450px']
        ,id: 'LAY-popup-user-add'
        ,success: function(layero, index){
          view(this.id).render('user/user/userform', data).done(function(){
            form.render(null, 'layuiadmin-form-useradmin');
            
            //提交
              form.on('submit(LAY-user-front-submit)', function (data) {
                var field = data.field; //获取提交的字段

                //提交 Ajax 成功后，关闭当前弹层并重载表格
                $.ajax({
                    url: setter.baseConfig.apiHost + '/api/user/update' //实际使用请改成服务端真实接口
                    , type: 'post'
                    , contentType: "application/json"
                    , data: JSON.stringify(field)
                    , beforeSend: function (xhr) {
                        xhr.setRequestHeader("Authorization", 'Bearer ' + layui.data(setter.tableName)[setter.request.tokenName]);
                    }
                    , success: function (res) {
                        if (res.errorCode != '00000') {
                            layer.msg(res.errorMessage, {
                                offset: '15px'
                                , icon: 2
                                , time: 3000
                            });

                            return false;
                        }

                        //登入成功的提示与跳转
                        layer.msg('修改成功', {
                            offset: '15px'
                            , icon: 1
                            , time: 3000
                        });

                        layui.table.reload('LAY-user-manage'); //重载表格
                        layer.close(index); //执行关闭
                    }
                });
            });
          });
        }
      });
    } else if (obj.event === 'disable') {
        layer.confirm('确定要禁用吗？', function (index) {
            //提交 Ajax 成功后，关闭当前弹层并重载表格
            $.ajax({
                url: setter.baseConfig.apiHost + '/api/user/disableuser' //实际使用请改成服务端真实接口
                , type: 'post'
                , contentType: "application/json"
                , data: JSON.stringify({
                    id: data.id,
                    isEnabled: 'N'
                })
                , beforeSend: function (xhr) {
                    xhr.setRequestHeader("Authorization", 'Bearer ' + layui.data(setter.tableName)[setter.request.tokenName]);
                }
                , success: function (res) {
                    if (res.errorCode != '00000') {
                        layer.msg(res.errorMessage, {
                            offset: '15px'
                            , icon: 2
                            , time: 3000
                        });

                        return false;
                    }

                    //登入成功的提示与跳转
                    layer.msg('禁用成功!', {
                        offset: '15px'
                        , icon: 1
                        , time: 3000
                    });

                    layui.table.reload('LAY-user-manage'); //重载表格
                    layer.close(index); //执行关闭
                }
            });
        });
    } else if (obj.event === 'enable') {
        layer.confirm('确定要启用吗？', function (index) {
            //提交 Ajax 成功后，关闭当前弹层并重载表格
            $.ajax({
                url: setter.baseConfig.apiHost + '/api/user/disableuser' //实际使用请改成服务端真实接口
                , type: 'post'
                , contentType: "application/json"
                , data: JSON.stringify({
                    id: data.id,
                    isEnabled: 'Y'
                })
                , beforeSend: function (xhr) {
                    xhr.setRequestHeader("Authorization", 'Bearer ' + layui.data(setter.tableName)[setter.request.tokenName]);
                }
                , success: function (res) {
                    if (res.errorCode != '00000') {
                        layer.msg(res.errorMessage, {
                            offset: '15px'
                            , icon: 2
                            , time: 3000
                        });

                        return false;
                    }

                    //登入成功的提示与跳转
                    layer.msg('启用成功!', {
                        offset: '15px'
                        , icon: 1
                        , time: 3000
                    });

                    layui.table.reload('LAY-user-manage'); //重载表格
                    layer.close(index); //执行关闭
                }
            });
        });
    } else if (obj.event === 'resetpwd') {
        layer.confirm('确定要重置密码吗？', { title: "温馨提示" }, function (index) {
            //提交 Ajax 成功后，关闭当前弹层并重载表格
            $.ajax({
                url: setter.baseConfig.apiHost + '/api/user/resetpwd' //实际使用请改成服务端真实接口
                , type: 'post'
                , contentType: "application/json"
                , data: JSON.stringify({
                    id: data.id
                })
                , beforeSend: function (xhr) {
                    xhr.setRequestHeader("Authorization", 'Bearer ' + layui.data(setter.tableName)[setter.request.tokenName]);
                }
                , success: function (res) {
                    if (res.errorCode != '00000') {
                        layer.msg(res.errorMessage, {
                            offset: '15px'
                            , icon: 2
                            , time: 3000
                        });

                        return false;
                    }

                    //展示重置后的密码
                    layer.alert(res.errorMessage, { icon: 1, title: '温馨提示' }, function (index) {
                        // do something
                        layui.table.reload('LAY-user-manage'); //重载表格
                        layer.close(index); //执行关闭
                    });
                }
            });
        });
    }
  });

  //管理员管理
  table.render({
    elem: '#LAY-user-back-manage'
    ,url: './res/json/useradmin/mangadmin.js' //模拟接口
    ,cols: [[
      {type: 'checkbox', fixed: 'left'}
      ,{field: 'id', width: 80, title: 'ID', sort: true}
      ,{field: 'loginname', title: '登录名'}
      ,{field: 'telphone', title: '手机'}
      ,{field: 'email', title: '邮箱'}
      ,{field: 'role', title: '角色'}
      ,{field: 'jointime', title: '加入时间', sort: true}
      ,{field: 'check', title:'审核状态', templet: '#buttonTpl', minWidth: 80, align: 'center'}
      ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin'}
    ]]
    ,text: '对不起，加载出现异常！'
  });
  
  //工具条
  table.on('tool(LAY-user-back-manage)', function(obj){
    var data = obj.data;
    if(obj.event === 'del'){
      layer.prompt({
        formType: 1
        ,title: '敏感操作，请验证口令'
      }, function(value, index){
        layer.close(index);
        layer.confirm('确定删除此管理员？', function(index){
          console.log(obj)
          obj.del();
          layer.close(index);
        });
      });
    }else if(obj.event === 'edit'){
      admin.popup({
        title: '编辑管理员'
        ,area: ['420px', '450px']
        ,id: 'LAY-popup-user-add'
        ,success: function(layero, index){
          view(this.id).render('user/administrators/adminform', data).done(function(){
            form.render(null, 'layuiadmin-form-admin');
            
            //提交
            form.on('submit(LAY-user-back-submit)', function(data){
              var field = data.field; //获取提交的字段

              //提交 Ajax 成功后，关闭当前弹层并重载表格
              //$.ajax({});
              layui.table.reload('LAY-user-back-manage'); //重载表格
              layer.close(index); //执行关闭 
            });
          });
        }
      });
    }
  });

  //角色管理
  table.render({
    elem: '#LAY-user-back-role'
    ,url: './res/json/useradmin/role.js' //模拟接口
    ,cols: [[
      {type: 'checkbox', fixed: 'left'}
      ,{field: 'id', width: 80, title: 'ID', sort: true}
      ,{field: 'rolename', title: '角色名'}
      ,{field: 'limits', title: '拥有权限'}
      ,{field: 'descr', title: '具体描述'}
      ,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin'}
    ]]
    ,text: '对不起，加载出现异常！'
  });
  
  //工具条
  table.on('tool(LAY-user-back-role)', function(obj){
    var data = obj.data;
    if(obj.event === 'del'){
      layer.confirm('确定删除此角色？', function(index){
        obj.del();
        layer.close(index);
      });
    }else if(obj.event === 'edit'){
      admin.popup({
        title: '添加新角色'
        ,area: ['500px', '480px']
        ,id: 'LAY-popup-user-add'
        ,success: function(layero, index){
          view(this.id).render('user/administrators/roleform', data).done(function(){
            form.render(null, 'layuiadmin-form-role');
            
            //提交
            form.on('submit(LAY-user-role-submit)', function(data){
              var field = data.field; //获取提交的字段

              //提交 Ajax 成功后，关闭当前弹层并重载表格
              //$.ajax({});
              layui.table.reload('LAY-user-back-role'); //重载表格
              layer.close(index); //执行关闭 
            });
          });
        }
      });
    }
  });

  exports('useradmin', {})
});